4
תגובות
בעיה עם הקונסטרקטור
פתח
משהה
,
מופיעה לי השגיאה :
PDO::query(): SQLSTATE[00000]: No error: PDO constructor was not called happened
עכשיו השורה שבה השגיאה היא שורה בתוך מתודה, שבה כתוב parent::query (מחלקת PDO)..כאילו כזה :
מה עושים ?
בתכלס המתודה כזאתי :
מה אפשר לעשות ?
שבת שלום :)
PDO::query(): SQLSTATE[00000]: No error: PDO constructor was not called happened
עכשיו השורה שבה השגיאה היא שורה בתוך מתודה, שבה כתוב parent::query (מחלקת PDO)..כאילו כזה :
parent::query($statement);
מה עושים ?
בתכלס המתודה כזאתי :
public function query($statement) {
return parent::query($statement);
}
return parent::query($statement);
}
מה אפשר לעשות ?
שבת שלום :)
4 תשובות
שיט למה לא התחברתי לפני שבדקתי לבד ><
שיניתי קצת את המחלקה ואת הדברים כדי לחלק את זה לתהליך תהליך, ואז אני יראה מה הבעיה... עכשיו הקונסטקטור לא תקין לא דע מה ישלו :O הנה זה הקוד :
class db extends PDO
{
protected static $instance ;
private $_connected = false;
public function __construct($dsn, $username, $password, $driver_options=array()) {
$this->_connected = true;
self::$instance = parent::__construct($dsn, $username, $password, $driver_options);
return self::$instance;
}
public function query($statement) {
return parent::query($statement);
}
public function prepareQ()
{
//print($this->_connected);
return new SQLStatement;
}
}
{
protected static $instance ;
private $_connected = false;
public function __construct($dsn, $username, $password, $driver_options=array()) {
$this->_connected = true;
self::$instance = parent::__construct($dsn, $username, $password, $driver_options);
return self::$instance;
}
public function query($statement) {
return parent::query($statement);
}
public function prepareQ()
{
//print($this->_connected);
return new SQLStatement;
}
}
עכשיו, ישלי עוד מחלקה שהיא SQLStatatement ויש בה את המתודה הזאת :
public function go()
{
if(self::$instance === null ){
echo "error";
}
else {
return parent::$instance->query($this->queryStatement);
//return $this->instance->query($this->queryStatement);
}
}
{
if(self::$instance === null ){
echo "error";
}
else {
return parent::$instance->query($this->queryStatement);
//return $this->instance->query($this->queryStatement);
}
}
גם את המתודה הזאת אני שיניתי כדי לבדוק...
בקיצור , שאר המתודות במחלקה SQLSTATEMENT עובדות מצויין.
אני ניגש למחלקה ככה :
$db = new db("mysql:host=localhost;dbname=tester",'root','');
$db->prepareQ()->select()->from('test')->go();
$db->prepareQ()->select()->from('test')->go();
ומופיע לי error, בדיוק כמו בבדיקה של המתודה go.. זה אומר שהתכונה nstance לא הוגדרה:O מה הפאק פה ? ^^